<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- NCoverExplorer (c) 2006 Grant Drake.  -->
<!-- Schema for configuration file to be passed to NCoverExplorer-Console.exe using /config: switch  -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	
	<xs:element name="NCoverExplorer">
		<xs:complexType>
			<xs:sequence>
				<!-- Title name to appear on the report (equivalent to /project:xx). Default is blank. -->
				<xs:element name="ProjectName" type="xs:string" minOccurs="0" maxOccurs="1" />
				
				<!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage levels. Default is 95% -->
				<xs:element name="SatisfactoryCoverageThreshold" type="xs:decimal" minOccurs="0" maxOccurs="1" />
				
				<!-- Minimum coverage % (equivalent to /minCoverage:xx) below which exit code 3 will be thrown. Default is off by omitting this. -->
				<xs:element name="MinCoverageForExitCode" type="xs:decimal" minOccurs="0" maxOccurs="1" />
				
				<!-- Filtering to be applied to the results. Use integer (starting from 0=None) or named value. Default is "None". -->
				<xs:element name="TreeFilterStyle" minOccurs="0" maxOccurs="1">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="None"/>
							<xs:enumeration value="HideUnvisited"/>
							<xs:enumeration value="HideFullyCovered"/>
							<xs:enumeration value="HideThresholdCovered"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				
				<!-- Sorting to be applied to the results. Use integer (starting from 0=Name) or named value. Default is "Name". -->
				<xs:element name="TreeSortStyle" minOccurs="0" maxOccurs="1">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="Name"/>
							<xs:enumeration value="ClassLine"/>
							<xs:enumeration value="CoveragePercentageAscending"/>
							<xs:enumeration value="CoveragePercentageDescending"/>
							<xs:enumeration value="UnvisitedSequencePointsAscending"/>
							<xs:enumeration value="UnvisitedSequencePointsDescending"/>
							<xs:enumeration value="VisitCountAscending"/>
							<xs:enumeration value="VisitCountDescending"/>
							<xs:enumeration value="FunctionCoverageAscending"/>
							<xs:enumeration value="FunctionCoverageDescending"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				
				<!-- Coverage exclusions to exclude specified assemblies, namespaces and/or classes. -->
				<xs:element name="CoverageExclusions" minOccurs="0" maxOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="CoverageExclusion" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				
				<!-- Module specific coverage thresholds if wanting more granular coverage tolerances. -->
				<xs:element name="ModuleThresholds" minOccurs="0" maxOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="ModuleThreshold" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="CoverageExclusion">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ExclusionType" minOccurs="1" maxOccurs="1" >
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="Assembly"/>
							<xs:enumeration value="Namespace"/>
							<xs:enumeration value="Class"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="Pattern" type="xs:string" minOccurs="1" maxOccurs="1" />
				<xs:element name="IsRegex" type="xs:boolean" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="ModuleThreshold">
		<xs:complexType>
			<xs:attribute name="ModuleName" use="required" type="xs:string" />
			<xs:attribute name="SatisfactoryCoverage" use="required" type="xs:decimal" />
		</xs:complexType>
	</xs:element>
	
</xs:schema>
